﻿using System;

namespace LxCFD
{
    public class FvContactBase : HeadBase, IProvideContactTopology
    {
        public bool IsEnabled { get; set; }
        public bool IsConode { get; set; }
        public IndexNumber InnerIndex { get; set; }
        public FvPair[] Pairs;
        public FvCell[] OCells;
        public FvCell[] NCells;
        public AMGInContact AMGSolver { get; set; }
        public BiCGStabInZone O_BiCGSolver;
        public BiCGStabInZone N_BiCGSolver;

        public int[] GetOZoneCellOFaces(int cellID)
        {
            return OCells[cellID].OFaces;
        }

        public int[] GetNZoneCellOFaces(int cellID)
        {
            return NCells[cellID].OFaces;
        }

        public IndexNumber GetInnerIndex()
        {
            return InnerIndex;
        }
        public virtual void GetONZone(out FvZoneBase OZone, out FvZoneBase NZone)
        {
            throw new NotImplementedException();
        }
        public virtual void GetONThread(out FvThreadBase OThread, out FvThreadBase NThread)
        {
            throw new NotImplementedException();
        }
    }
}

//IndexNumber IProvideContactTopology.getOwnerIndex()
//{
//    return ownerThread.ThreadIndex;
//}

//IndexNumber IProvideContactTopology.getNeighborIndex()
//{
//    return neighborThread.ThreadIndex;
//}
